<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta http-equiv="X-UA-Compatible" content="ie=edge" />
    <title>Document</title>
    <script src="vue.js"></script>
    <link rel="stylesheet" type="text/css" href="animate.css" />
    <style>
      .fade-enter {
        /* 0代表完全透明  第一桢执行.fade-enter .fade-enter-active 当前是隐藏的，当执行到第二桢，
        .fade-enter删除并使用fade-enter-to样式，opacity变成了1，触发了.fade-enter-active样式里面的监听
         */
        opacity: 0;
      }

      .fade-enter-active {
        transform-origin: left center;
        /* 监听opacity是否发生变化，如果发生变化就会在3秒之内完成 */
        transition: opacity 3s;
      }

      .fade-leave-to {
        /* 0代表透明  第一桢执行.fade-leave .fade-leave-active 当前是1不隐藏的，当执行到第二桢，
        .fade-leave 被删除并使用fade-leave-to样式，opacity变成了0，触发了.fade-enter-active样式里面的监听
         */
        opacity: 0;
      }

      .fade-leave-active {
        transform-origin: left center;
        /* 监听opacity是否发生变化，如果发生变化就会在3秒之内完成 */
        transition: opacity 3s;
      }
    </style>
  </head>
  <body>
    <div id="root">
      <!-- appear appear-active-class 自定义样式   -->
      <transition
        name="fade"
        appear
        appear-active-class="animated tada"
        enter-active-class="animated tada fade-enter-active"
        leave-active-class="animated wobble fade-leave-active"
      >
        <div v-show="show">hello wrold</div>
      </transition>
      <button @click="handleBtnClick">按钮</button>
    </div>
    <script>
      var vim = new Vue({
        el: '#root',
        data: {
          show: true
        },
        methods: {
          handleBtnClick: function() {
            this.show = !this.show;
          }
        }
      });
    </script>
    <!-- 显示阶段执行流程  被transition包裹的元素的动画执行过程，在第一桢首先会引用name值-enter、name值-enter-active样式，
         到第二桢会移除name值-enter，引用name值-enter-to样式，执行到最后一桢移除name值-enter-active、name值-enter-to样式 
    -->

    <!-- 隐藏阶段执行流程  被transition包裹的元素的动画执行过程，在第一桢首先会引用name值-leave、name值-leave-active样式，
         到第二桢会移除name值-leave，引用name值-leave-to样式，执行到最后一桢移除name值-leave-active、name值-leave-to样式 
    -->
  </body>
</html>
